查看原文
其他

转学 Java 一年半,最大的问题是?

鱼皮 程序员鱼皮 2024-01-21

大家好,我是鱼皮。

对初学 Java 的同学来说,最大的问题往往是 “怎么学下去”、“怎么入门”。

那对于已经学习 Java 一年多的同学来说,最大的问题是什么呢?

我总结了 3 个:

1)学了就忘、学了不会用怎么办?

2)如何突破、是否要深入学习原理?

3)如何提效、更快满足工作要求?

碰巧的是,最近我在自己的 编程导航 回答了一位同学的提问,刚好覆盖了这几大问题,特意分享出来,希望给大家一些参考:

问题:

鱼皮您好,我现在开学是研二,转学 java 一年半左右了;我先说下我的基本情况:

1、刚开始学的是 servlet 和 jsp,然后用 jsp 自己开发过两个项目,对拦截器这些也有一些了解;

2、 现在学了 Springboot,Springcloud,Spring Security,redis,vue/elementu i这些,ssm 基本上是系统的学的,但是涉及到原理等我部分我基本也没怎么记住,像 springcloud 我就只会用,跟着项目走的,就只会用 nacos,spring gateway,feign 这些组件,原理就完全没看;

3、 java 基础:我是跟着 java 核心技术卷把集合、泛型这些过了一遍,至并发编程和网络编程一直没有去学,因为我目前项目里都没有用到。目前的想法:我想先去实习,然后我现在投简历,基本能收到一个面试通知,但是基本上好一点的实习都过不了面试,一问到高并发和设计模式就完全没法回答。算法题刷的也不是很多,面试大部分时候算法题都写不完;

我的问题:

1、 我现在不知道应该先学哪个,再学哪个?是先找一些高并发的项目跟着做,边做边补基础,还是先去补基础?如果是先做项目的话,能不能给我一点建议,从编程导航的那些项目里推荐几个?

2、 redis、mq、es 这些中间件应该怎么用到项目中,因为我感觉这些如果就只学个 API 的话一段时间不用又忘记了,之前学一些大数据的框架也是。这块是用到再学吗?

3、关于每个技术原理部分应该怎么应对呢?是先看一遍做好笔记等面试前再去背面经吗?

4、设计模式这些学过但是完全不会用,而且一段时间不看又好多忘记了,这个要跟着项目走吗?

鱼皮回答:

1)首先针对你的每一次面试做一个复盘,并且每一轮面试询问下面试官的感受和看法,分析出自己最需要优先提升的方向,大概分为 3 个方面:项目经验、技术八股文、算法。

从你的描述中,高并发需要的理论 >= 实践,设计模式需要的实践 > 理论,所以在项目中去运用这些技术是性价比较高的选择。

项目的话,比较推荐我的智能 BI 或者 OJ 项目,前者涉及并发和异步、后者运用了多种设计模式。还可以看《Java 并发编程之美》提升并发编程的理论知识。

至于基础,是需要长期持续提升的,每天坚持刷 2 - 3 道算法题目,面试前突击背几天八股文即可,大多数的时间还是放在项目实践上。

2)API 不要死记硬背!而是要实际运用到项目中,通过保存代码的方式来帮助自己沉淀。

具体怎么把技术用到项目中,其实在每个技术的教程中应该都有讲的。根据这些技术的特性和优势,抽象出对应的功能和场景,然后把这些功能往自己的项目上搬就好了。

比如使用 Redis 来进行缓存、使用消息队列来处理异步任务、使用Elasticsearch 来进行全文搜索等,编程导航的项目完全覆盖了这几个中间件的应用场景,可以按顺序学习。大数据框架后端开发中几乎用不到的,不用关注,有时间的话学习下大数据分布式并行计算的思想就足够了。

3)原理的学习建立在能熟练运用技术来解决问题的基础上。如果自身项目经验还并不丰富,又要应对面试,更推荐先直接背面经、等有空了再看网上的源码教程或者读深入书籍。

学习过程中一定要多记笔记、多画图,帮助自己理解和记忆,“只用脑子” 学是不够的。

4)每个设计模式都要敲代码实践一下,并且有机会的话刻意运用到项目中。给大家看看我 5 年前写的设计模式仓库,都是 Demo 代码,很简单:(GitHub - liyupi/Design-Model),大家都应该有个类似的仓库。




最后,欢迎学编程的朋友们加入鱼皮的 
编程知识星球 ,和上万名学编程的同学共享知识、交流进步,学习原创项目并享有答疑指导服务。

👇🏻 点击下方阅读原文,获取鱼皮往期编程干货和原创项目

往期推荐

我的学习小圈子

25 届,下决心考研了。

老板,不能再省了!

最累的一场面试,还得是腾讯!

“水货” 靠包装进了公司,如何度过试用期?

斩获 2 个 Offer,开心!

继续滑动看下一个

转学 Java 一年半,最大的问题是?

鱼皮 程序员鱼皮
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存